1. Field of the Invention
The invention is related to the field of communications and, in particular, to providing charging for long duration sessions in communication networks.
2. Statement of the Problem
One type of communication network gaining popularity is an IP Multimedia Subsystem (IMS) network. As set forth in the 3rd Generation Partnership Project (3GPP), IMS provides a common core network having a network architecture that allows for various types of access networks. The access network between a communication device and the IMS network may be a cellular network (e.g., CDMA or GSM), a WLAN (e.g., WiFi or WiMAX), an Ethernet network, or another type of wireless or wireline access network. The IMS architecture is initially defined by the 3GPP to provide multimedia services to communication devices over an Internet Protocol (IP) network, as IP networks have become the most cost savings bearer network to transmit video, voice, and data. Service providers are accepting this architecture in next generation network evolution.
IMS networks and other multimedia/data type networks provide new and different issues not typically seen with traditional circuit-based networks. One such issue is long duration sessions. In a traditional circuit-based network, a typical voice call is relatively short, on the order of ten minutes or less. In an IMS network, data sessions for surfing the Internet, for watching IP TV, for playing online gaming, etc, may last much longer than a traditional voice call. For example, an online gaming session may last for multiple days. When long durations sessions are established over an IMS network, there may be problems associated with charging for the sessions.
To provide offline charging for a session in an IMS network, a network element, such as a Call Session Control Function (CSCF), an application server, etc, generates Diameter Accounting Request (ACR) messages during the session. The network element first generates an ACR(start) message at initiation of the session, such as responsive to receiving a SIP INVITE message for the session. The message format for an ACR message includes a timestamp AVP, which is a group AVP that includes a field for a service delivery start timestamp and includes a field for a service delivery stop timestamp. The network element identifies a start time for the session, and inserts a start timestamp into the service delivery start timestamp field of the ACR(start) message. The network element then transmits the ACR(start) message to a Charging Data Function (CDF).
After the session is established, the network element periodically transmits ACR(interim) messages to the CDF. The network element transmits the ACR(interim) messages to the CDF according to a pre-defined interval, such as every five minutes. If the network element detects that the session ends, such as by receiving a SIP BYE message, then the network element generates an ACR(stop) message. The network element identifies a stop time for the session, and inserts a stop timestamp into the service delivery stop timestamp field of the ACR(stop) message. The network element then transmits the ACR(stop) message to the CDF.
When the CDF first receives the ACR(start) message from the network element, the CDF sets a timer. If the CDF receives an ACR(stop) message from the network element before expiration of the timer, then the CDF generates a full Charging Data Record (CDR) for the session. The CDF then transmits the CDR to a Charging Gateway Function (CGF). The CGF correlates the full CDR with any other CDRs for the session, and transmits a full CDR to a billing system which charges for the session.
If the CDF does not receive an ACR(stop) message from the network element before expiration of the timer, then the session is considered a “long duration session” (i.e., the elapsed time of the session extends beyond the timer set by the CDF). Instead of generating a full CDR, the CDF generates a partial CDR for the session and transmits the partial CDR to the CGF. After transmitting the first partial CDR to the CGF, the CDF re-sets the timer and continues to receive ACR(interim) messages from the network element. If an ACR(stop) message is not received before the timer expires again, then the CDF generates a second partial CDR for the long duration session and transmits the second partial CDR to the CGF. If the CDF receives an ACR(stop) message from the network element, then the CDF generates the final partial CDR for the session, and transmits the final partial CDR to the CGF.
There may be instances where the CDF does not receive one or more ACR messages (start/interim/stop) from the network element. The ACR messages may not be received for a variety of reasons, such as network congestion, failure of one or more elements in the network, etc. As an example, the CDF may be able to identify that an ACR(start) message was not received if the CDF receives one or more ACR(interim) messages for the session. As another example, the CDF monitors how often an ACR(interim) message should be received from a network element. If an ACR(interim) message is not received during a defined time interval, then the CDF identifies that an ACR(interim) message is missing. When an ACR message is missing or is lost, the CDF generates an incomplete CDR for the session, and transmits the incomplete CDR to the CGF.
At some point for a long duration session, the CGF correlates the partial CDRs (and incomplete CDRs) for the session according to an IMS Charging Identifier (ICID) assigned to the session. The CGF may also calculate a total duration for the session. For instance, the CGF may identify the start timestamp for the session and identify the stop timestamp for the session. The CGF may then calculate the total duration for the session based on these two timestamps. The CGF generates a CDR for the long duration session that includes the total duration for the session, and transmits the CDR to a billing system to charge for the session.
There may be problems encountered when charging for a long duration session. According to present 3GPP standards, only the ACR(start) message and the ACR(stop) message include timestamps. The start and stop timestamps represent the only data that may be used to calculate a total duration for the session. If the CDF does not receive either or both of the start or stop timestamps in the ACR messages from the network element, then a total duration for the session cannot be calculated. As a result, the billing system is unable to charge for the session.